package com.haiya.singleton.staticinnerclass;

/**
 * Singleton在装载的时候，并不会装载SingletonInstance
 *
 * 而我们调用Singleton.getInstance()方法时，返回了静态内部类的静态属性，这个时候会装载SingletonInstance
 * 静态内部类加载的时候，仅加载一次，这个时候装载静态内部类。
 * 此时是通过JVM装载静态内部类的。
 * @author qiaoguoqiang
 */
public class Singleton {
    private Singleton() {}

    private static class SingletonInstance {
        private static final Singleton INSTANCE = new Singleton();
    }

    public static Singleton getInstance() {
        return SingletonInstance.INSTANCE;
    }
}